#!/bin/bash

# 检查 Nginx 是否已安装
if ! command -v nginx &> /dev/null; then
    echo "Nginx 尚未安装，正在安装 Nginx..."
    
    # 更新系统包
    sudo yum update -y
    
    # 安装 EPEL 仓库
    sudo yum install -y epel-release
    
    # 安装 Nginx
    sudo yum install -y nginx
    
    # 启动 Nginx 服务
    sudo systemctl start nginx
    
    # 确保 Nginx 在开机时自动启动
    sudo systemctl enable nginx
else
    echo "Nginx 已经安装。"
fi

# 删除或重命名默认配置文件
if [ -f "/etc/nginx/nginx.default.conf" ]; then
    echo "正在删除默认的 Nginx 配置文件..."
    sudo mv /etc/nginx/nginx.default.conf /etc/nginx/nginx.default.conf.bak
fi

# 检查 /tmp/nginx.conf 是否存在，并替换现有配置
NGINX_CONF_SOURCE="/tmp/nginx.conf"
NGINX_CONF_DEST="/etc/nginx/nginx.conf"

if [ -f "$NGINX_CONF_SOURCE" ]; then
    echo "正在用 $NGINX_CONF_SOURCE 替换 nginx.conf..."
    sudo cp "$NGINX_CONF_SOURCE" "$NGINX_CONF_DEST"
else
    echo "$NGINX_CONF_SOURCE 不存在，跳过替换。"
fi

# 检查 nginx 用户是否存在
if id "nginx" &>/dev/null; then
    echo "用户 nginx 存在"
else
    echo "用户 nginx 不存在，正在创建..."
    sudo useradd -r nginx
    if [ $? -eq 0 ]; then
        echo "用户 nginx 创建成功"
    else
        echo "创建用户 nginx 失败"
        exit 1
    fi
fi

# 检查 unzip 是否已安装，如果未安装则进行安装
if ! command -v unzip &> /dev/null; then
    echo "unzip 尚未安装，正在安装 unzip..."
    sudo yum install -y unzip
fi

# 解压 dist.zip 文件并复制内容
ZIP_FILE="/tmp/dist.zip"  # 替换为实际的 dist.zip 文件路径

if [ -f "$ZIP_FILE" ]; then
    echo "正在解压 $ZIP_FILE..."
    sudo unzip -o "$ZIP_FILE" -d /tmp && \
    sudo cp -r /tmp/dist/* /usr/share/nginx/html && \
    sudo chown -R nginx:nginx /usr/share/nginx/html && \
    sudo chmod -R 755 /usr/share/nginx/html
else
    echo "$ZIP_FILE 不存在。请检查路径。"
    exit 1
fi

# 开放 Nginx 的端口（80）
# 要检查的端口
PORT=30001
if firewall-cmd --list-ports | grep -q "${PORT}/tcp"; then
    echo "端口 ${PORT} 在防火墙中已经开放。"
else
    # 开放 Nginx 的端口（30001）
    echo "正在开放端口 ${PORT} 在防火墙中..."
    sudo firewall-cmd --permanent --add-port=${PORT}/tcp
    sudo firewall-cmd --reload
    echo "端口 ${PORT} 已经开放。"
fi

# 检查 Nginx 配置是否正确
echo "正在检查 Nginx 配置..."
sudo nginx -t

# 如果配置正确，则重启 Nginx
if [ $? -eq 0 ]; then
    echo "Nginx 配置有效，正在重启 Nginx..."
    sudo systemctl restart nginx
else
    echo "Nginx 配置无效，正在尝试禁用 SELinux..."
    sudo setenforce 0
    echo "再次重启 Nginx..."
    sudo systemctl restart nginx
fi

echo "Nginx 已成功配置并重启。"
